package com.topscomm.gpm;

import com.topscomm.basic.BasicSystemConst;

/**
 * @Description TODO
 * @Classname SdSystemConst
 * @Date 2021/11/19
 * @Created by jiangtao
 */
public class GpmSystemConst extends BasicSystemConst {
	// 合同来源
	public static class ContractNegotiationSource {
		public static final String Chance = "1"; // 直销
		public static final String Bid = "2";  // 中标
	}

	// Sd审批类型
	public static class SdApprovalCategory {
		public static final String SdProjectApproval = "10"; //项目立项
		public static final String SdProjectChange = "20"; // 立项变更
		public static final String GpmProcessProject = "30"; // 流程项目立项
		public static final String GpmProcessProjectChange = "40"; // 流程项目变更
	}
	// 	Sd 审批编码
	public static class SdApprovalCode {
		public static final String ProjectApproval = "GpmWfForm"; //项目立项
		public static final String ProjectChangeApproval = "GpmProjectChange"; // 项目变更
		public static final String GpmProcessProjectApproval = "GpmProcessProject"; // 流程项目立项
		public static final String GpmProcessProjectChangeApproval = "GpmProcessProjectChange"; // 流程项目变更
	}

	public static class SdApprovalType {
		public static final String SdProjectType = "ApprovalFlow_GpmWfForm"; // 项目立项审批
		public static final String SdProjectChangeType = "ApprovalFlow_GpmProjectChange"; // 项目立项变更审批
		public static final String GpmProcessProjectType = "ApprovalFlow_GpmProcessProject"; // Gpm流程项目立项
		public static final String GpmProcessProjectChangeType = "ApprovalFlow_GpmProcessProjectChange"; // Gpm流程项目变更
	}

	// 项目状态
	public static class SdProjectState {
		public static String ProjectApproval = "0";// 立项中
		public static String ProjectOngoing = "1";// 进行中
		public static String ProjectNormalEnd = "2";// 正常结项
		public static String ProjectUnApprovaled = "3";// 立项不通过
		public static String ProjectTobeApproval = "4";// 待立项
		public static String ProjectAppointment = "5";// 任命阶段
		public static String ProjectPlaning = "6";// 策划阶段
		public static String ProjectExecution = "7";// 执行阶段
		public static String ProjectUnNormalEnd = "8";// 异常结项
		public static String ProjectReview = "9";// 复盘阶段
	}
	/**
	 * @description:订单审核状态枚举
	 * @author: zhanglongfei
	 * @date: 2020年6月28日下午5:32:11
	 * @modify:
	 */
	public static class InvAuditStateEnum {
		public static int Init = 0;// 待审核
		public static int Back = 10;// 审核不通过
		public static int Del = 20;// 废弃
		public static int Success = 90;// 审核通过
	}

	/**
	 * @description:开票类型
	 * @author: shenyouyi
	 * @date: 2020-06-30 17:29:00
	 * @modify:
	 */
	public static class CreateTypeEnum {
		public static String BlueFontInvoice = "0"; // 蓝字发票
		public static String RedFontInvoice = "1"; // 红字发票
	}

	/**
	 * @description:发票类型
	 * @author: shenyouyi
	 * @date: 2020-06-30 17:29:31
	 * @modify:
	 */
	public static class BillTypeEnum {
		public static String SpecialInvoice = "0"; // 专票
		public static String CustomInvoice = "2"; // 普票
	}

	/**
	 * @description:推送状态
	 * @author: shenyouyi
	 * @date: 2020-07-01 09:22:55
	 * @modify:
	 */
	public static class InvoiceCancelStatusEnum {
		public static String Enabled = "0"; // 有效
		public static String Canceled = "1"; // 失效
		public static String Canceling = "2";// 失效中
	}

	/**
	 * @description:启用状态
	 * @author: shenyouyi
	 * @date: 2020-07-01 09:40:41
	 * @modify:
	 */
	public static class EnableEnum {
		public static int Unenabled = 0; // 无效
		public static int Enabled = 1; // 有效
	}

	/**
	 * @author: shenyouyi
	 * @date: 2020-09-26
	 * @description: 审批类型
	 * @modify:
	 */
	public static class ApprovalTypeEnum {
		public static String APPROVAL_SUCCESS = "1"; // 审核通过
		public static String APPROVAL_FAIL = "2"; // 审核不通过
	}

	/**
	 * @description:消息通知类型
	 * @author: shenyouyi
	 * @date: 2020-07-02 10:29:30
	 * @modify:
	 */
	public static class SysApiNoticeTypeEnum {
		public static String InvoiceInfoChange = "invoiceInfoChange"; // 发票信息更新
		public static String LogisticsInfoChange = "logisticsInfoChange"; // 物流信息更新
		public static String InvoiceApplyDrop = "invoiceApplyDrop"; // 申请单作废
		public static String CheckSuccess = "checkSuccess"; // 申请单审核通过
		public static String CheckFailed = "checkFailed";// 申请单审核驳回
	}

	/**
	 * @author: shenyouyi
	 * @date: 2020/7/9
	 * @return
	 * @description: 发票系统业务类型
	 * @modify:
	 */
	public static class SysApiSourceTypeEnum {
		public static String InvoiceBillApply = "1";// 发票申请单管理
	}

	/**
	 * @author: shenyouyi
	 * @date: 2020/7/18
	 * @return
	 * @description: 来源单据类型
	 * @modify:
	 */
	public static class DocTypeEnum {
		public static String New = "1"; // 新增
		public static String cancel = "2"; // 作废
		public static String cancelReOpen = "3"; // 作废重开
	}
	/**
	 * @author: 李万鹏
	 * @date: 2020/10/31
	 * @return
	 * @description: 要替换掉的二级部门名称中的内容
	 * @modify:
	 */
	public static class DeptNameReplaceStrEnum {
		public static String ReplaceStr = "营销服务中心"; // 服务营销中心将被替换
	}

	/**
	 * @author: 陈庚维
	 * @date: 2021-07-14
	 * @description: 传阅反馈审批流
	 * @modify:
	 */
	public static final String SdProjectCirculated = "PmsProjectCirculated";

	/**
	 * @author: 陈庚维
	 * @date: 2021-07-16
	 * @description: 提醒项目成员消息
	 * @modify:
	 */
	public static final String RemindProjectMemberMessage = "您被%s任命为【%s】项目组成员";

	/**
	 * @author: 陈庚维
	 * @date: 2021-07-19
	 * @description: 选择项目成员节点id系统参数code
	 * @modify:
	 */
	public static final String SelectProjectMemberNodeId = "SelectProjectMemberNodeId";

	/**
	 * @author: 陈庚维
	 * @date: 2021-08-20
	 * @description: 提醒PMO项目变更消息内容
	 * @modify:
	 */
	public static final String RemindPMOMessageContent = "项目【%s】已变更，请及时查看变更记录";

	/**
	 * @author: 陈庚维
	 * @date: 2021-08-20
	 * @description: 提醒PMO项目变更消息主题
	 * @modify:
	 */
	public static final String RemindPMOMessageSubject = "项目变更提醒";

	/**
	 * @author: 陈庚维
	 * @date: 2021-08-20
	 * @description: 项目变更审批流相关方确认节点id系统参数code
	 * @modify:
	 */
	public static final String StakeholderComfirmNodeId = "GpmStakeholderComfirmNodeId";

	/**
	 * @author: 陈庚维
	 * @date: 2021-09-01
	 * @description: 项目变更审批流选择审批人节点id系统参数code
	 * @modify:
	 */
	public static final String SelectApprovalUserNodeId = "GpmSelectApprovalUserNodeId";

	/**
	 * @author: 侯宇航
	 * @date: 2021-09-01
	 * @description: Sd按项目经理/部门查询
	 * @modify:
	 */
	public static final String Sd_Query_Manager = "managerForm";
	public static final String Sd_Query_Dept = "deptForm";

	/**
	 * @Description:    项目成员任命
	 * @Author:         mengmeng
	 * @Date:           2021/9/8 11:14
	 */
	public static final String Sd_TAEM_APPOINTMENTTYPE_APPOINT = "1"; //任命
	/**
	 * @Description:    项目成员撤销任命
	 * @Author:         mengmeng
	 * @Date:           2021/9/8 11:14
	 */
	public static final String Sd_TAEM_APPOINTMENTTYPE_REVOKE = "2"; //撤销任命
	/**
	 * @Description:    任命书一次任命标志
	 * @Author:         mengmeng
	 * @Date:           2021/9/8 11:15
	 */
	public static final String Sd_APPOINTMENT_SYSPUSH = "2"; //撤销任命
	/**
	 * @Description:    项目团队人员是否能删除
	 * @Author:         mengmeng
	 * @Date:           2021/9/8 15:43
	 * @Version:        1.0
	 */
	public static final int Sd_TEAM_CAN_DELETE = 0;// 能删除
	public static final int Sd_TEAM_CAN_NOT_DELETE = 1;// 不能删除


	public static final String Sd_TEAM_PROJECT_ROLE_WORKER = "gruopworker"; // 组员
	public static final String Sd_TEAM_PROJECT_ROLE_LEADER = "groupleader"; // 组长

	/**
	 * @author: chengengwei
	 * @date: 2021-09-13
	 * @description: 变更类型编码值
	 * @modify:
	 */
	public static class ChangeSourceTypeEnum {
		public static String Change = "GpmProjectChange"; // 立项
		public static String Appointment = "GpmProjectAppointment"; // 任命
		public static String Plan = "GpmProjectPlan"; // 策划
		public static String UniversalChange = "GpmProjectUniversalChange"; // 项目
	}


	/**
	 * @author: liuchenguang
	 * @date: 2021-09-14
	 * @description: 工作组类型编码值
	 * @modify:
	 */
	public static class WorkGroupCode {
		public static String manager = "manager"; // 项目领导组
		public static String decision = "decision"; // 决策组
		public static String center = "center"; // 项目组
		public static String other = "other"; // 其他
	}

	/**
	 * @author: liuchenguang
	 * @date: 2021-09-14
	 * @description: 工作组类型编码值
	 * @modify:
	 */
	public static class WorkGroup {
		public static String manager = "manager"; // 项目领导组
		public static String decision = "decision"; // 决策组
		public static String center = "center"; // 项目组
		public static String other = "other"; // 其他
	}

	/**
	 * @author: liuchenguang
	 * @date: 2021-09-14
	 * @description: 组内角色编码值
	 * @modify:
	 */
	public static class WorkGroupRoleCode {
		public static String pm = "pm"; // 项目经理
		public static String sponsor = "sponsor"; // Sponsor
		public static String owner = "owner"; // Owner
		public static String decision = "decision"; // 决策成员
		public static String groupLeader = "groupleader"; // 组长
		public static String groupWorker = "groupworker"; // 组员
	}

	/**
	 * @author: chengengwei
	 * @date: 2021-09-13
	 * @description: 变更类型编码值
	 * @modify:
	 */
	public static final String PMORole = "businessManager";

	/**
	 * @description: 变更记录的操作类型
	 * @author: wangxinhua
	 * @date: 2020/12/2 9:42
	 * @modify:
	 */
	public static class BaseLogOperateTypeEnum {
		public static final String Add = "add";
		public static final String Edit = "edit";
		public static final String Del = "del";
	}

	/***
	 * @description: SD项目级别
	 * @param
	 * @return
	 * @author: jiangtao1
	 * @date: 2021/12/14 15:41
	 * @modify:
	 */
	public static class SdProjectLevel {
		public static final String A = "0"; // A级项目
		public static final String B = "1"; // B级项目
		public static final String C = "2"; // C级项目
		public static final String D = "3"; // D级项目
	}


	/***
	 * @description: Sd来源
	 * @param
	 * @return
	 * @author: jiangtao1
	 * @date: 2021/12/23 14:34
	 * @modify:
	 */
	public static class SdProjectSource {
		public static final String Contract = "1"; // A级项目
		public static final String Bid = "2"; // B级项目
		public static final String  Borrow= "2"; // C级项目
	}
	/**
	 * @author: houyuhang
	 * @date: 2021-11-30
	 * @description: 项目状态projectstate编码
	 * @modify:
	 */
	public static final String ExecuteStateCode = "1";
	/**
	 * @author: houyuhang
	 * @date: 2021-11-30
	 * @description: 任务状态taskstate编码
	 * @modify:
	 */
	public static class TaskStateCode {
		public static final String TaskNotStartCode = "0";
		public static final String TaskIncompleteCode = "1";
		public static final String TaskCompleteCode = "2";
		public static final String TaskFrozenCode = "-1";
		public static final String TaskCloseCode = "4";
	}
	/**
	 * @author: houyuhang
	 * @date: 2021-11-30
	 * @description: 项目异常状态abnormalstate编码
	 * @modify:
	 */
	public static class AbnormalStateCode {
		public static final String OverdueProjectCode = "30";
		public static final String OverdueMilepostCode = "20";
		public static final String OverdueTaskCode = "10";
		public static final String OverdueFlowCode = "15";
		public static final String NormalCode = "0";
	}
	/**
	 * @author: houyuhang
	 * @date: 2021-11-29
	 * @description: 任命超期时间（4天）和策划超期时间（7天）
	 * @modify:
	 */
	public static final String overdueAppointmentTime = "4";
	public static final String overduePlanTime = "7";
	public static final String OverdueFlowTime = "2";
	/**
	 * @author: houyuhang
	 * @date: 2021-12-21
	 * @description: 里程碑状态milepoststate编码
	 * @modify:
	 */
	public static class MilepostStateCode {
		public static final String MilepostIncompleteCode = "0";
		public static final String MilepostCompleteCode = "1";
		public static final String MilepostFrozenCode = "2";
	}
	/**
	 * @author: houyuhang
	 * @date: 2021-01-14
	 * @description: 不发送任命部门deptcommoncode(渠道销售部),如果有多个部门，使用逗号分隔
	 * @modify:
	 */
	public static final String AppointmentSendExcept = "0";
	/***
	 * @description: 审批节点名称
	 * @return
	 * @author: houyuhang
	 * @date: 2022/03/09
	 * @modify:
	 */
	public static class ApprovalState {
		public static String Begin = "开始";
		public static String End = "结束";
	}
	/***
	 * @description: 首次任命、策划的版本号
	 * @return
	 * @author: houyuhang
	 * @date: 2022/03/09
	 * @modify:
	 */
	public static final String FirstVersion = "1";
	/***
	 * @description: 任命书生成时文件名中不允许出现的字符
	 * @return
	 * @author: houyuhang
	 * @date: 2022/01/11
	 * @modify:
	 */
	public static String generateAppointmentPrevent = "/,\\\\,:,[*],[?],\",<,>,[|]";
	/***
	 * @description: 项目进行中的各状态编码
	 * @return
	 * @author: houyuhang
	 * @date: 2022/04/09
	 * @modify:
	 */
	public static String ProjectOngoingState = "1,5,6,7,9";

	/**
	 * @author: houyuhang
	 * @date: 2021-11-23
	 * @description: mpm流程sourcetype编码
	 * @modify:
	 */
	public static final String sdSourcetype = "GpmProjectAppointment,GpmProjectTaskClose,GpmProjectReview,GpmProjectTask" +
			",GpmProject,GpmProjectProblem,GpmProjectCirculated,GpmProjectSupervise" +
			",GpmProjectTaskFeedback,GpmProjectRisk,GpmProjectPlan,GpmProjectDemand,GpmProjectUniversalChange";

	public final static String sdJYGLBRole = ",GpmbusinessManager,";
	/**
	 * @author: houyuhang
	 * @date: 2022-09-05
	 * @description: 经营管理部角色
	 * @modify:
	 */
	public static final String JYGLBRole = ",GpmPMOAdmin,";

    /**
     * @Description:    审批项目类型
     * @Author:         wuyuyang
     * @Return:
     * @exception:
     * @Date:           22/9/2023 下午11:15
     * @Version:        1.0
     **/
	public static class GPM_APPROVAL_PROJECT_TYPE {
		public static String GpmProcessProject = "1";
	}
}
